package com.cysoft.third.echarts.component.calendar;

import lombok.Data;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.calendar
 * @date 2025/3/12 17:13
 * @desc 设置日历坐标中星期轴的样式
 */
@Data
public class DayLabel {

    /**
     * 是否在普通状态下显示标签，默认为 true
     */
    private Boolean show = true;

    /**
     * 一周从周几开始，默认从周日开始（0）
     */
    private Integer firstDay;

    /**
     * 星期标签与轴线之间的距离
     */
    private Integer margin;

    /**
     * 星期的位置 在星期轴的开头还是结尾。可选值：'start'、'end'，默认为'start'
     */
    private String position = "start";

    /**
     * 星期显示的效果，默认为 'EN'（从 v5.2.2 起，默认初始化图表时指定的语言）
     */
    private String[] nameMap = new String[]{"EN"};

    /**
     * 文字的颜色，默认为 '#000'
     */
    private String color = "#000";

    /**
     * 文字字体的风格。可选值：'normal'、'italic'、'oblique'，默认为 'normal'
     */
    private String fontStyle = "normal";

    /**
     * 文字字体的粗细。可选值：'normal'、'bold'、'bolder'、'lighter'、100 | 200 | 300 | 400...，默认为 'normal'
     */
    private String fontWeight = "normal";

    /**
     * 文字的字体系列。还可以是'serif'、'monospace'、'Arial'、'Courier New'、'Microsoft YaHei' 等，默认为'sans-serif'
     */
    private String fontFamily = "sans-serif";

    /**
     * 文字的字体大小，默认为 12
     */
    private Integer fontSize = 12;

    /**
     * 文字水平对齐方式，默认自动。可选值：'left'、'center'、'right'
     */
    private String align;

    /**
     * 文字垂直对齐方式，默认自动。可选值：'top'、'middle'、'bottom'
     */
    private String verticalAlign;

    /**
     * 行高
     */
    private Integer lineHeight;

    /**
     * 文字块背景色。可以使用颜色值，例如：'#123234'、'red'、'rgba (0,23,11,0.3)'。也可以直接使用图片
     */
    private Object backgroundColor = "transparent";

    /**
     * 文字块边框颜色
     */
    private String borderColor;

    /**
     * 文字块边框宽度
     */
    private Integer borderWidth;

    /**
     * 文字块边框描边类型。可选值：'solid'、'dashed'、'dotted'，默认为'solid'
     */
    private String borderType = "solid";

    /**
     * 从 v5.0.0 开始支持，用于设置虚线的偏移量，可搭配 borderType 指定 dash array 实现灵活的虚线效果
     */
    private Integer borderDashOffset;

    /**
     * 文字块的圆角
     */
    private Integer[] borderRadius;

    /**
     * 文字块的内边距。例如：[3, 4, 5, 6] 表示 [上，右，下，左] 的边距；4 表示 [4, 4, 4, 4]；[3, 4] 表示 [3, 4, 3, 4]
     */
    private Integer[] padding;

    /**
     * 文字块的背景阴影颜色，默认为 'transparent'
     */
    private String shadowColor = "transparent";

    /**
     * 文字块的背景阴影长度
     */
    private Integer shadowBlur;

    /**
     * 文字块的背景阴影 X 偏移
     */
    private Integer shadowOffsetX;

    /**
     * 文字块的背景阴影 Y 偏移
     */
    private Integer shadowOffsetY;

    /**
     * 文本显示宽度
     */
    private Integer width;

    /**
     * 文本显示高度
     */
    private Integer height;

    /**
     * 文字本身的描边颜色
     */
    private String textBorderColor;

    /**
     * 文字本身的描边宽度
     */
    private Integer textBorderWidth;

    /**
     * 文字本身的描边类型。可选值：'solid'、'dashed'、'dotted'，默认为'solid'
     */
    private String textBorderType = "solid";

    /**
     * 从 v5.0.0 开始支持，用于设置虚线的偏移量，可搭配 textBorderType 指定 dash array 实现灵活的虚线效果
     */
    private Integer textBorderDashOffset;

    /**
     * 文字本身的阴影颜色，默认为 'transparent'
     */
    private String textShadowColor = "transparent";

    /**
     * 文字本身的阴影长度
     */
    private Integer textShadowBlur;

    /**
     * 文字本身的阴影 X 偏移
     */
    private Integer textShadowOffsetX;

    /**
     * 文字本身的阴影 Y 偏移
     */
    private Integer textShadowOffsetY;

    /**
     * 文字超出宽度是否截断或者换行。配置 width 时有效。可选值：'truncate'、'break'、'breakAll'，默认为 'none'
     */
    private String overflow = "none";

    /**
     * 在 overflow 配置为 'truncate' 的时候，可以通过该属性配置末尾显示的文本，默认为 '...'
     */
    private String ellipsis = "...";

    /**
     * 在 rich 里面，可以自定义富文本样式。利用富文本样式，可以在标签中做出非常丰富的效果
     */
    private Object rich;

    /**
     * 从 v5.6.0 开始支持，图形是否不响应和触发鼠标事件，默认为 false，即响应和触发鼠标事件
     */
    private Boolean silent = false;
}
